package com.aggregate.pay.pingan;

import com.aggregate.pay.pingan.support.AbstractClient;
import com.aggregate.pay.pingan.support.client.Auth;
import com.aggregate.pay.pingan.support.client.CategoryList;
import com.aggregate.pay.pingan.support.client.CityList;
import com.aggregate.pay.pingan.support.client.ContractAdd;
import com.aggregate.pay.pingan.support.client.ContractCheck;
import com.aggregate.pay.pingan.support.client.ContractDelete;
import com.aggregate.pay.pingan.support.client.ContractDeliver;
import com.aggregate.pay.pingan.support.client.ContractList;
import com.aggregate.pay.pingan.support.client.ContractPayFee;
import com.aggregate.pay.pingan.support.client.ContractPayList;
import com.aggregate.pay.pingan.support.client.ContractShopList;
import com.aggregate.pay.pingan.support.client.ContractShopRelate;
import com.aggregate.pay.pingan.support.client.FileDownload;
import com.aggregate.pay.pingan.support.client.FileUpload;
import com.aggregate.pay.pingan.support.client.MerchAdd;
import com.aggregate.pay.pingan.support.client.MerchCheck;
import com.aggregate.pay.pingan.support.client.MerchDelete;
import com.aggregate.pay.pingan.support.client.MerchDeliver;
import com.aggregate.pay.pingan.support.client.MerchList;
import com.aggregate.pay.pingan.support.client.OrderList;
import com.aggregate.pay.pingan.support.client.ShopAdd;
import com.aggregate.pay.pingan.support.client.ShopCheck;
import com.aggregate.pay.pingan.support.client.ShopDelete;
import com.aggregate.pay.pingan.support.client.ShopDeliver;
import com.aggregate.pay.pingan.support.client.ShopList;
import com.aggregate.pay.pingan.support.client.ShopOpenId;

/**
 * 平安银行支付－接口类型
 * @author Moyq5
 * @date 2017年5月9日
 */
public enum PinganType {

	/**
	 * open_id,open_key,rsa鉴权接口：Auth
	 */
	AUTH(Auth.class),
	/**
	 * 添加商户接口：MerchAdd
	 */
	MERCH_ADD(MerchAdd.class),
	/**
	 * 商户列表接口：MerchList
	 */
	MERCH_LIST(MerchList.class),
	/**
	 * 商户提审接口：MerchDeliver
	 */
	MERCH_DELIVER(MerchDeliver.class),
	/**
	 * 商户审核接口：MerchCheck
	 */
	MERCH_CHECK(MerchCheck.class),
	/**
	 * 商户删除接口：MerchDelete
	 */
	MERCH_DELETE(MerchDelete.class),
	/**
	 * 添加门店接口：ShopAdd
	 */
	SHOP_ADD(ShopAdd.class),
	/**
	 * 门店列表接口：ShopList
	 */
	SHOP_LIST(ShopList.class),
	/**
	 * 门店提审接口：ShopDeliver
	 */
	SHOP_DELIVER(ShopDeliver.class),
	/**
	 * 门店审核接口：MerchCheck
	 */
	SHOP_CHECK(ShopCheck.class),
	/**
	 * 门店删除接口：ShopDelete
	 */
	SHOP_DELETE(ShopDelete.class),
	/**
	 * 门店open_id接口：ShopOpenId
	 */
	SHOP_OPEN_ID(ShopOpenId.class),
	/**
	 * 支付方式列表接口：ContractPayList
	 */
	CONTRACT_PAY_LIST(ContractPayList.class),
	/**
	 * 支付方式费率及自定义表单项接口：ContractPayFee
	 */
	CONTRACT_PAY_FEE(ContractPayFee.class),
	/**
	 * 添加合同接口：ContractAdd
	 */
	CONTRACT_ADD(ContractAdd.class),
	/**
	 * 合同列表接口：ContractList
	 */
	CONTRACT_LIST(ContractList.class),
	/**
	 * 合同提审接口：ContractDeliver
	 */
	CONTRACT_DELIVER(ContractDeliver.class),
	/**
	 * 合同审核接口：ContractCheck
	 */
	CONTRACT_CHECK(ContractCheck.class),
	/**
	 * 合同可关联门店列表接口：ContractShopList
	 */
	CONTRACT_SHOP_LIST(ContractShopList.class),
	/**
	 * 合同关联门店接口：ContractShopRelate
	 */
	CONTRACT_SHOP_RELATE(ContractShopRelate.class),
	/**
	 * 合同删除接口：ContractDelete
	 */
	CONTRACT_DELETE(ContractDelete.class),
	/**
	 * 城市编码接口：CityList
	 */
	CITY_LIST(CityList.class),
	/**
	 * 商户分类接口：CategoryList
	 */
	CATEGORY_LIST(CategoryList.class),
	/**
	 * 文件上传接口：FileUpload
	 */
	FILE_UPLOAD(FileUpload.class),
	/**
	 * 文件下载接口：FileDownload
	 */
	FILE_DOWNLOAD(FileDownload.class),
	/**
	 * 订单列表接口：OrderList
	 */
	ORDER_LIST(OrderList.class);
	
	private Class<? extends AbstractClient<?,?>> clientClass;
	
	PinganType(Class<? extends AbstractClient<?,?>> clientClass) {
		this.clientClass = clientClass;
	}

	public Class<? extends AbstractClient<?,?>> getClientClass() {
		return clientClass;
	}

}
